package cap3;

class Alien {
	//Atributos de clase
	private static final int maxVidas=5;
	//Atributos de instancia
	private NaveEspacial Nave;
	private int vidas;
	private int antenas;
	private int manos;
	//Constructor
	public Alien (NaveEspacial n,int a,int m){
	  Nave = n;
	  vidas = maxVidas;
	  antenas = a;
	  manos = m;}
	//Comandos
	public void establecerVidas(int v){
	//Requiere v < maxVidas
	  vidas = v;}
	public void recuperaVidas(){
	  if (vidas+2 > maxVidas)
	    vidas = maxVidas;
	  else
	    vidas = vidas+2;}
	public void recibeHerida(){
	  if (vidas > 0) vidas--;}
	public void copy (Alien a){
	  Nave = a.obtenerNave();
	  vidas = a.obtenerVidas();
	  antenas = a.obtenerAntenas();
	  manos = a.obtenerManos();}
	public void establecerNave(NaveEspacial n){
	Nave = n;}
	//Consultas
	public NaveEspacial obtenerNave(){
	  return Nave;}
	public int obtenerVidas(){
	  return vidas;}
	public int obtenerAntenas(){
	  return antenas;}
	public int obtenerManos (){
	  return manos;}
	public int obtenerFuerza(){
		return (antenas+manos)*vidas;}
	public Alien clone(){
	  NaveEspacial n = Nave;
	  int m = manos;
	  int a = antenas;
	  int v = vidas;
	  Alien c = new Alien(n,a,m);
	  c.establecerVidas(v);
	  return c;}
	public boolean equals(Alien a){
	  return Nave == a.obtenerNave() &&
	         manos == a.obtenerManos() &&
	         antenas == a.obtenerAntenas() &&
	         vidas == a.obtenerVidas();}
	public boolean equalsS(Alien a){
		  return Nave == a.obtenerNave() &&
		         manos == a.obtenerManos() &&
		         antenas == a.obtenerAntenas() &&
		         vidas == a.obtenerVidas();}
		public boolean equalsP(Alien a){
		  return Nave.equals(a.obtenerNave()) &&
		         manos == a.obtenerManos() &&
		         antenas == a.obtenerAntenas() &&
		         vidas == a.obtenerVidas();}


}
		
